Practical Considerations for Non-Blocking Concurrent Objects

نویسنده

  • Brian N. Bershad
چکیده

An important class of concurrent objects are those that are non-blocking, that is, whose operations are not contained within mutually exclusive critical sections. A non-blocking object can be accessed by many threads at a time, yet update protocols based on atomic Compare-And-Swap operations can be used to guarantee the object's consistency. In this paper we take a practical look at the Compare-And-Swap operation in the context of contemporary bus-based shared memory multiprocessors, although our results generalize to distributed shared memory multiprocessors. We rst describe an operating system-based solution that permits the construction of a non-blocking Compare-And-Swap function on architectures that only support more primitive atomic primitives such as Test-And-Set or Atomic Exchange. We then evaluate several locking strategies that can be used to synthesize a Compare-And-Swap operation, and show that the common techniques for reducing synchronization overhead in the presence of contention are inappropriate when used as the basis for nonblocking synchronization. We then describe a simple synchronization strategy that has good performance because it avoids much of the synchronization overhead that normally occurs when there is contention. This research was sponsored in part by a National Science Foundation Presidential Young Investigator Award, the Digital Equipment Corporation, the Defense Advanced Research Projects Agency, Information Science and Technology O ce, under the title \Research on Parallel Computing", ARPA Order No. 7330, issued by DARPA/CMO under Contract MDA97290-C-0035, and by the Open Software Foundation (OSF). The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the o cial policies, either expressed or implied, of NSF, DEC, DARPA, OSF, or the U.S. government.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Practical Considerations for Non - Blocking Concurrent

An important class of concurrent objects are those that are non-blocking, that is, whose operations are not contained within mutually exclusive critical sections. A non-blocking object can be accessed by many threads at a time, yet update protocols based on atomic Compare-And-Swap operations can be used to guarantee the object's consistency. In this paper we take a practical look at the Compare...

متن کامل

A Program Logic for Contextual Refinement of Concurrent Objects under Fair Scheduling

Existing program logics on concurrent object verification either ignore progress properties, or aim for non-blocking progress (e.g., lock-freedom and wait-freedom), which cannot be applied to blocking algorithms that progress only under fair scheduling. In this paper we propose a new program logic for compositional verification of contextual refinement of concurrent objects under fair schedulin...

متن کامل

Normality: A Consistency Condition for Concurrent Objects

Linearizability is a consistency condition for concurrent objects (objects shared by concurrent processes) that exploits the semantics of abstract data types. It provides the illusion that each operation applied by concurrent processes takes eeect instantaneously at some point between the beginning and the end of its execution. When compared with other consistency conditions (such as sequential...

متن کامل

A Non-Blocking Buffer Mechanism for Real-Time Event Message Communicatoin

It is desirable to facilitate data communications among concurrent computation threads without incurring non-essential synchronizations in real-time computing systems. An interaction mechanism, called the non-blocking writer (NBW) mechanism and invented by Kopetz, is useful in facilitating state message communication from a producer to a consumer thread in real-time applications. A more widely ...

متن کامل

Fast and Lock-Free Concurrent Priority Queues for Multi-Thread Systems

We present an efficient and practical lock-free implementation of a concurrent priority queue that is suitable for both fully concurrent (large multi-processor) systems as well as pre-emptive (multi-process) systems. Many algorithms for concurrent priority queues are based on mutual exclusion. However, mutual exclusion causes blocking which has several drawbacks and degrades the overall perform...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1993